#include<iostream>
// zdl:: 寻宝这道题目其实并不难，但是难得点事读懂题目的意思。
using namespace std;
using ll = long long;

ll n, m;
const int N = 1e4 + 10;
const int M = 110;
ll cnt[N];
ll info[N][M];
bool is[N][M];
const int mod = 20123;
int main()
{
    cin >> n >> m;
    for (int i = 1; i <= n; i++)
    {
        for (int j = 0; j < m; j++)
        {
            int x, y;
            cin >> x >> y;
            // 首先要记录这层楼梯的楼梯数量和指示牌信息
            if (x)
            {
                cnt[i]++;
                // 同时需要记录这个房间有没有楼梯·
                is[i][j] = true;
            }
            info[i][j] = y;
        }
    }

    int p = 0; cin >> p;
    ll sum = 0;
    for (int i = 1; i <= n; i++)
    {
        sum = (sum + info[i][p]) % mod;

        // zdl:: 就可以下来进行步数优化、
        ll step = info[i][p] % cnt[i] == 0 ? cnt[i] : info[i][p] % cnt[i];
        while (1)
        {
            if (is[i][p]) step--;
            if (!step) break;
            p++;
            if (p == m) p == 0;
        }
    }
    
    cout << sum << endl;
    return 0;
}